package com.omi.iberolactalpreventa;

import java.text.NumberFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TextView;
import android.widget.Toast;

import com.omi.iberolactalpreventa.objects.AdapterCommentPredef;
import com.omi.iberolactalpreventa.objects.AdapterItmPedlst;
import com.omi.iberolactalpreventa.objects.AdapterResumen;
import com.omi.iberolactalpreventa.objects.ItmCommentPredef;
import com.omi.iberolactalpreventa.objects.ItmPedLst;
import com.omi.iberolactalpreventa.objects.itmResumen;

public class NuevoPedido extends Activity{
	
	private TabHost tabs;
	//Cabecera
	private EditText txtNewPedIdNumPed;
	private EditText txtNewPedSuRefPed;
	private EditText txtNewPedNombre;
	private EditText txtNewPedNifCif;
	private EditText txtNewPedDireccion;
	private ListView lstNewPedFecha;
	private CheckBox chkNewPedCorrecion;
	//Linea
	private ListView lstNewPedLinCodProd;
	private EditText txtNewDescripcion;
	private EditText txtNewCantidad;
	private CheckBox chkNewpreckg;

	private EditText txtNewKgUd;

	private EditText txtNewImp;
	private Button btnaddprodnewprod;
	private Spinner spnNewUM;
	private ListView lstNewPedLinProd;
	//Consumos:
//	private ListView lstNewConsumos;
	private EditText txtNewCantConsumos;
	private Button btnNewInsertConsumo;
	//Comentarios
	private EditText txtNewPedComment;
	private Button btnNewPedCommentPredef;
	private Button btnNewPedAniadir;
	private ListView lstNewPedComments;
	//Resumen
	private TextView txtNewPedNombreCliResum;
	private TextView txtNewPedImporteResum;
	private TextView txtNewPedImporteIvaResum;
	private TextView txtNewImporteRe;
	private TextView txtNewPedTotal;
	private ListView lstNewDetResum;
	
	private MenuItem itmDesc;
	private MenuItem itmModif;
	private MenuItem itmBorrar;
	private MenuItem itmEliminar;
	private MenuItem itmCancelar;
	private MenuItem itmBack;
	
	private Cursor c;
	private Toast toast;
	
	private Builder dlgFocus;
	
	private String txtPrecio="0";
	private String TextPrecNetoUd="0";
	private String Importe_IVA="0";
	private String Importe_RE="0";
	private boolean onlongClick=false;
	private String commentTemp="";
	private String numLinTemp="";
	private DialogInterface.OnClickListener dlgclick;
	private Bundle extras;
private boolean editando=false;
	
	private GregorianCalendar fechaPedido;
	@SuppressLint("NewApi")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_nuevo_pedido);
	
		extras = getIntent().getExtras();
		
		txtNewPedIdNumPed = (EditText) findViewById(R.id.txtNewPedIdNumPed);
		txtNewPedSuRefPed= (EditText) findViewById(R.id.txtNewPedSuRefPed);

		txtNewPedNombre= (EditText) findViewById(R.id.txtNewPedNombre);
		txtNewPedNifCif= (EditText) findViewById(R.id.txtNewPedNifCif);
		txtNewPedDireccion= (EditText) findViewById(R.id.txtNewPedDireccion);

		lstNewPedFecha= (ListView) findViewById(R.id.lstNewPedFecha);
		chkNewPedCorrecion= (CheckBox) findViewById(R.id.chkNewPedCorrecion);
		
		lstNewPedLinCodProd = (ListView) findViewById(R.id.lstNewPedLinCodProd);
		txtNewDescripcion = (EditText) findViewById(R.id.txtNewDescripcion);
		txtNewCantidad = (EditText) findViewById(R.id.txtNewCantidad);
		chkNewpreckg = (CheckBox) findViewById(R.id.chkNewpreckg);
		Modulebase.txtNewPudkg = (EditText) findViewById(R.id.txtNewPudkg);
		txtNewKgUd = (EditText) findViewById(R.id.txtNewKgUd);
		Modulebase.txtNewDimp = (EditText) findViewById(R.id.txtNewDimp);
		txtNewImp = (EditText) findViewById(R.id.txtNewImp);
		Modulebase.txtNewDto = (EditText) findViewById(R.id.txtNewDto);
		btnaddprodnewprod= (Button) findViewById(R.id.btnaddprodnewprod);
		spnNewUM = (Spinner) findViewById(R.id.spnNewUM);
//		lstNewConsumos = (ListView) findViewById(R.id.lstConsumos);
		txtNewCantConsumos = (EditText) findViewById(R.id.txtNewCantConsumos);
		btnNewInsertConsumo = (Button) findViewById(R.id.btnNewInsertConsumo);
		lstNewPedLinProd = (ListView) findViewById(R.id.lstNewPedLinProd);

		txtNewPedComment = (EditText) findViewById(R.id.txtNewPedComment);
		btnNewPedCommentPredef = (Button) findViewById(R.id.btnNewPedCommentPredef);
		btnNewPedAniadir = (Button) findViewById(R.id.btnNewPedAniadir);
		lstNewPedComments = (ListView) findViewById(R.id.lstNewPedComments);
		
		txtNewPedNombreCliResum= (TextView) findViewById(R.id.txtNewPedNombreCliResum);
		txtNewPedImporteResum= (TextView) findViewById(R.id.txtNewPedImporteResum);
		txtNewPedImporteIvaResum= (TextView) findViewById(R.id.txtNewPedImporteIvaResum);
		txtNewImporteRe= (TextView) findViewById(R.id.txtNewImporteRe);
		Modulebase.txtNewImporte = (EditText) findViewById(R.id.txtNewImp);
		txtNewPedTotal= (TextView) findViewById(R.id.txtNewPedTotal);
		lstNewDetResum= (ListView) findViewById(R.id.lstNewDetResum);
		
	    limpiarDatosLin();
		
		dlgFocus = new Builder(this);
		
		fechaPedido = new GregorianCalendar(Modulebase.calendar.get(Calendar.YEAR),Modulebase.calendar.get(Calendar.MONTH)+1,Modulebase.calendar.get(Calendar.DAY_OF_MONTH));
		fechaPedido.add(Calendar.DAY_OF_MONTH, 1);
		
		if(extras!=null)
		{
			Modulebase.idClient = extras.getString("idClient");
		}
	
		tabs = (TabHost) findViewById(android.R.id.tabhost);
		tabs.setup();
		
		TabHost.TabSpec spec = tabs.newTabSpec("Cabecera");
		spec.setContent(R.id.tabNewCabecera);
		spec.setIndicator("Cabecera");
		tabs.addTab(spec);
		
		spec = tabs.newTabSpec("Lineas Pedido");
		spec.setContent(R.id.tabNewLinPed);
		spec.setIndicator("Lineas Pedido");
		tabs.addTab(spec);
		
	/*	spec = tabs.newTabSpec("Consumos");
		spec.setContent(R.id.tabNewConsumos);
		spec.setIndicator("Consumos");
		tabs.addTab(spec);
		*/
		spec = tabs.newTabSpec("Comentarios");
		spec.setContent(R.id.tabNewComentarios);
		spec.setIndicator("Comentarios");
		tabs.addTab(spec);
		
		spec = tabs.newTabSpec("Resumen");
		spec.setContent(R.id.tabNewResumen);
		spec.setIndicator("Resumen");
		tabs.addTab(spec);
		
		dlgclick = new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				
			}
		};
	
		dlgFocus.setPositiveButton("Aceptar", dlgclick);
      
        
		//Creamos el boton (Lista) para seleccionar el producto:
		String[] opts = new String[]{"Seleccionar Producto"};
		ListAdapter adptr = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, opts);
		lstNewPedLinCodProd.setAdapter(adptr);
		
		cargarPedidosLin();

		//EVENTOS:
		//Evento para mostrar el datepicker:
		lstNewPedFecha.setOnItemClickListener(new OnItemClickListener() {
			@SuppressWarnings("deprecation")
			public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
				showDialog(100);
				}
			});
		
		txtNewImp.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				if(!txtNewDescripcion.getText().equals(""))
				{
					  dlgFocus.setTitle("Resumen:");

					  dlgFocus.setMessage("Importe: " + Modulebase.Redondear(Float.parseFloat(txtPrecio) * Float.parseFloat(txtNewCantidad.getText()+"")+"", 2)+"\nImporte dto.: " + GetImporteDto() + "\nImp. Dto. factura: " + GetImpDtoFactura(GetImporte(false)) + "\nImporte final: " + GetImporte(true));
					  dlgFocus.show();
					  txtNewImp.setText(GetImporte(true));
				}
			}
		});
		
		txtNewKgUd.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String vLCantUdMedida="0";
				String vLLargo="0";
				String vLAncho="0";
				String vLAltura="0";
				String vLCubicaje="0";
				String vLPeso="0";
				String vLPeso_neto_caja="0";
				String vLTara="0";
				
			    if(Modulebase.selectedLine==null)
			    {
			    	return;
			    }
			    
			    dlgFocus.setTitle("Resumen:");

			    c = Modulebase.db.ejecutarSelect(new String[]{"Cantidad_por_um"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			        
			    if(c!=null && c.moveToFirst())
			    {
			    	vLCantUdMedida = c.getString(0);
			    }
			    
			    c = Modulebase.db.ejecutarSelect(new String[]{"LONGITUD"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			    
			    if(c!=null && c.moveToFirst())
			    {
			    	vLLargo = c.getString(0);
			    }
			    
			        
			         c = Modulebase.db.ejecutarSelect(new String[]{"Ancho"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			    if(c!=null && c.moveToFirst())
			    {
			    	vLAncho = c.getString(0);
			    }    
			        
			         c = Modulebase.db.ejecutarSelect(new String[]{"Altura"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			       
			         if(c!=null && c.moveToFirst())
					    {
			        	 vLAltura = c.getString(0);
					    }    
					       
			        
			         c = Modulebase.db.ejecutarSelect(new String[]{"Cubicaje"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			         if(c!=null && c.moveToFirst())
					    {
			        	 vLCubicaje = c.getString(0);
					    }    
					       
			         
			         c = Modulebase.db.ejecutarSelect(new String[]{"Peso"},  "Ud_medida", "N_Producto=? AND Codigo=?",new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			         if(c!=null && c.moveToFirst())
					    {
			        	 vLPeso = c.getString(0);
					    }    
					       
			        
			         c = Modulebase.db.ejecutarSelect(new String[]{"Peso_neto_caja"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			         if(c!=null && c.moveToFirst())
					    {
			        	 vLPeso_neto_caja = c.getString(0);
					    }    
					       
			        
			         c = Modulebase.db.ejecutarSelect(new String[]{"Tara"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			         if(c!=null && c.moveToFirst())
					    {
			        	 vLTara = c.getString(0);
					    }    
					       
			      
			        
			        dlgFocus.setMessage("Información Ud. medida: \nCtad. por UM: " + vLCantUdMedida + "\nLargo: " + vLLargo +"\nAncho: " + vLAncho + "\nAltura: " + vLAltura + "\nCubicaje: " + vLCubicaje + "\nPeso: " + vLPeso + "\nPeso neto caja: " + vLPeso_neto_caja +  "\nTara: " + vLTara);
			        dlgFocus.show();
	
			}
		});

		txtNewKgUd.setOnFocusChangeListener(new OnFocusChangeListener() {
			
			@SuppressLint("NewApi")
			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				if(hasFocus)
				{
					//Mostrar el textbox con la info:
					String vLCantUdMedida="";
					String vLLargo="";
					String vLAncho="";
					String vLAltura=""; 
					String vLCubicaje="";
					String vLPeso="";
					String vLPeso_neto_caja="";
					String vLTara="";
		
			        if(Modulebase.selectedLine==null || Modulebase.selectedLine.getCodigo().equals(""))
			        {
			        	return;
			        }

			        c = Modulebase.db.ejecutarSelect(new String[]{"Cantidad_por_um","Largo","Ancho","Altura","Cubicaje","Peso","Peso_neto_caja","Tara"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
			        
			        if(c!=null && c.moveToFirst())
			        {
			        	vLCantUdMedida = c.getString(0);
			        	vLLargo = c.getString(1);
			        	vLAncho= c.getString(2);
			        	vLAltura= c.getString(3);
			        	vLCubicaje= c.getString(4);
			        	vLPeso= c.getString(5);
			        	vLPeso_neto_caja= c.getString(6);
			        	vLTara= c.getString(7);
			        }
			  
			        dlgFocus.setMessage("Información Ud. medida:\nCtad. por UM: " + vLCantUdMedida + "\nLargo: " + vLLargo + "\nAncho: " + vLAncho + "\nAltura: " + vLAltura + "\nCubicaje: " + vLCubicaje + "\nPeso: " + vLPeso + "\nPeso neto caja: " + vLPeso_neto_caja +"\nTara: " + vLTara);
			        dlgFocus.show();
				}
			}
		});
		
		getActionBar().setDisplayHomeAsUpEnabled(true);
		
		//Evento al pulsar el boton de añadir/editar
		btnaddprodnewprod.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				if(Modulebase.selectedLine!=null)
				{
					//Nos aseguramos de que ha metido un numero y no letras:
					try
					{
						Float.parseFloat(txtNewCantidad.getText()+"");
					}
					catch(Exception ex)
					{
						dlgFocus.setTitle("Error");
						dlgFocus.setMessage("La cantidad debe ser un número válido.");
						dlgFocus.show();
						return;
					}
				if(btnaddprodnewprod.getText().equals("Añadir"))
				{
				//Añadimos el producto a la lista:
				addproducto();
				}
				else
				{
					//Si es editar:
					modifyProd();
					btnaddprodnewprod.setText("Añadir");
					itmCancelar.setVisible(false);
					itmDesc.setVisible(true);
					itmEliminar.setVisible(true);
					itmBack.setVisible(true);
					editando=false;
					}
				}
				else
				{
					dlgFocus.setTitle("Error");
					dlgFocus.setMessage("Debe seleccionar un producto");
					dlgFocus.show();
				}
				//limpiarDatosLin();
			
			}
		});
	
		//Al hacer click sobre una linea del pedido, cogemos la linea para actualizar los datos:
		lstNewPedLinCodProd.setOnItemClickListener(new OnItemClickListener() {

		@Override
		public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
						Intent intProds = new Intent("com.omi.iberolactalpreventa.Productos");
						startActivity(intProds);
					}
				});
		
		//Evento al seleccionar una linea de la lista:
		lstNewPedLinProd.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View v,int position, long id) 
			{
				
				if(!editando)
				{
				ItmPedLst aux =(ItmPedLst) parent.getItemAtPosition(position);
				Modulebase.selectedLine = new ItmPedLst(txtNewPedIdNumPed.getText()+"",aux.getLinea(),aux.getCodigo(),aux.getDescripcion(),aux.getCantidad(),aux.getUds(),aux.getUd(),aux.getImporteLinea());
				onlongClick=true;
				itmBorrar.setVisible(true);
				itmCancelar.setVisible(true);
				itmModif.setVisible(true);
				itmEliminar.setVisible(false);
				itmDesc.setVisible(false);
				itmCancelar.setVisible(false);
				itmBack.setVisible(false);
				openOptionsMenu();
				}
			return true;
			}
		
		});
		
		//Evento al pulsar el boton introducir consumo:
		btnNewInsertConsumo.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				introducirConsumo();
			}
		});
		
		//Boton para entrar a buscar comentarios predefinidos:
		btnNewPedCommentPredef.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intPredef = new Intent("com.omi.iberolactalpreventa.CommentPref");
				startActivity(intPredef);
			}
		});
		
		//Boton para añadir un comentario:
		btnNewPedAniadir.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				if(btnNewPedAniadir.getText().equals("Editar"))
				{
				editarComment();
				itmCancelar.setVisible(false);
				itmDesc.setVisible(false);
				itmEliminar.setVisible(true);
				itmBack.setVisible(true);
				itmBorrar.setVisible(false);
				itmModif.setVisible(false);
				editando = false;
				btnNewPedAniadir.setText("Añadir");
				txtNewPedComment.setText("");
				}
				else
				{
				if(!txtNewPedComment.getText().equals(""))
				{
				introducirComentario();
				txtNewPedComment.setText("");
				}
				}
				}
		});
		
		lstNewPedComments.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View v,int position, long id) {
				if(!editando)
				{
				itmBorrar.setVisible(true);
				itmCancelar.setVisible(false);
				itmModif.setVisible(true);
				itmEliminar.setVisible(false);
				itmDesc.setVisible(false);
				itmCancelar.setVisible(false);
				itmBack.setVisible(false);
				onlongClick=true;
				commentTemp = ((ItmCommentPredef)parent.getItemAtPosition(position)).getComment();
				numLinTemp = ((ItmCommentPredef)parent.getItemAtPosition(position)).getNumLin();
				openOptionsMenu();
				}
				return false;
			}
		
		});

		//Evento para que al cambiar de pestaña cancele la edicion:
		tabs.setOnTabChangedListener(new OnTabChangeListener() {
			
			@Override
			public void onTabChanged(String tabId) {
				if(editando)
		    	{
		    		itmCancelar.setVisible(false);
					itmDesc.setVisible(true);
					itmEliminar.setVisible(true);
					itmBack.setVisible(true);
					itmBorrar.setVisible(true);
					itmModif.setVisible(true);
					editando = false;
					btnaddprodnewprod.setText("Añadir");
					btnNewPedAniadir.setText("Añadir");
					if(Modulebase.selectedLine!=null)
					{
					cargarPedidosLin();
					actualizarGrid();
					}
				}
				lanzarResumen();
			}
		});
		
		
		//inicializacion:
		lstNewPedFecha.setAdapter(Modulebase.inicializarFecha());
		if(extras.getBoolean("Verped"))
		{
			cargarPedido();
		}
		else
		{
		generarPedido();
		}
		
	
		
		cargarDatos();
		cargarComentarios();
	
		Modulebase.claseDescuento.InitDto();
		getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
		inicializarConsumos();
		cargarPedidosLin();
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.nuevo_pedido,menu);
	    itmDesc  = menu.findItem(R.id.itmDesc);
		itmModif = menu.findItem(R.id.itmModif);
		itmBorrar = menu.findItem(R.id.itmBorrar);
		itmEliminar = menu.findItem(R.id.itmEliminar);
		itmCancelar = menu.findItem(R.id.itmCancelar);
		itmBack = menu.findItem(R.id.itmBack);
		//Configuracion inicial del menu (cabecera)
		itmDesc.setVisible(false);
		itmModif.setVisible(false);
		itmBorrar.setVisible(false);
		itmCancelar.setVisible(false);
		return true;
	}
	
	@Override
	public boolean onMenuOpened(int featureId, Menu menu) {
		//Segun la pestaña en la que estemos, mostraremos unas opciones del menu u otras:
		if(!onlongClick && !editando)
		{
			//Solamente si no estamos en un menu personalizado de pulsacion larga:
		if(tabs.getCurrentTabTag().equals("Cabecera"))
		{
			itmDesc.setVisible(false);
			itmModif.setVisible(false);
			itmBorrar.setVisible(false);
			itmCancelar.setVisible(false);
			itmBack.setVisible(true);
			itmEliminar.setVisible(true);
		}
		else if(tabs.getCurrentTabTag().equals("Lineas Pedido"))
		{
			itmBack.setVisible(true);
			itmEliminar.setVisible(true);
			itmDesc.setVisible(true);
			itmModif.setVisible(false);
			itmBorrar.setVisible(false);
			itmCancelar.setVisible(false);
		}
		else if(tabs.getCurrentTabTag().equals("Consumos"))
		{
			itmBack.setVisible(true);
			itmEliminar.setVisible(true);
			itmDesc.setVisible(false);
			itmModif.setVisible(false);
			itmBorrar.setVisible(false);
			itmCancelar.setVisible(false);
		}
		else if(tabs.getCurrentTabTag().equals("Comentarios"))
		{
			itmBack.setVisible(true);
			itmEliminar.setVisible(true);
			itmDesc.setVisible(false);
			itmModif.setVisible(false);
			itmBorrar.setVisible(false);
			itmCancelar.setVisible(false);
		}
		else
		{
			itmBack.setVisible(true);
			itmEliminar.setVisible(true);
			itmDesc.setVisible(false);
			itmModif.setVisible(false);
			itmBorrar.setVisible(false);
			itmCancelar.setVisible(false);
		}
		}

		
		onlongClick=false;
		return super.onMenuOpened(featureId, menu);
	}
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
	    switch (item.getItemId()) {
	    case android.R.id.home:
            finish();
            break;
	    case R.id.itmDesc:
	    	if(Modulebase.selectedLine!=null && !txtNewDescripcion.getText().equals(""))
	    	{
	    	Intent intDesc = new Intent("com.omi.iberolactalpreventa.Descuentos");
	    	startActivity(intDesc);
	    	}
	    	else
	    	{
	    		dlgFocus.setTitle("Error");
	    		dlgFocus.setMessage("Antes debe seleccionar un producto");
	    		dlgFocus.show();
	    	}
	    	break;
	    case R.id.itmModif:
	    	if(tabs.getCurrentTabTag().equals("Lineas Pedido"))
	    	{
	    	//Actualizamos datos:
			actualizarGrid();
	    	//Cambiamos el texto del boton:
	    	btnaddprodnewprod.setText("Editar");
	    	}
	    	else
	    	{
	    		//Comentario:
	    		btnNewPedAniadir.setText("Editar");
	    		txtNewPedComment.setText(commentTemp);
	    	}
	    	itmCancelar.setVisible(true);
			itmDesc.setVisible(false);
			itmEliminar.setVisible(false);
			itmBack.setVisible(false);
			itmBorrar.setVisible(false);
			itmModif.setVisible(false);
	    	
			editando = true;
	    	
			break;
	
	    //Para borrar elementos:
	    case R.id.itmBorrar:
	    	if(tabs.getCurrentTabTag().equals("Lineas Pedido"))
	    	{
	    		//Eliminamos linea:
	    		eliminarLineaPedido();
	    	}
	    	else
	    	{
	    		//Eliminamos comentario:
	    		eliminarComment();
	    	}

	    	break;
	    case R.id.itmEliminar:
	    	//Eliminar pedido:
	    	eliminarPedido();
	    	break;
	    case R.id.itmCancelar:
	    	if(editando)
	    	{
	    		txtNewPedComment.setText("");
	    		itmCancelar.setVisible(false);
				itmDesc.setVisible(true);
				itmEliminar.setVisible(true);
				itmBack.setVisible(true);
				itmBorrar.setVisible(true);
				itmModif.setVisible(true);
				editando = false;
				btnaddprodnewprod.setText("Añadir");
				btnNewPedAniadir.setText("Añadir");
				if(Modulebase.selectedLine!=null)
				{
				cargarPedidosLin();
				actualizarGrid();
				}
	    	}
	    	break;
	    case R.id.itmBack:
	    	 Intent intBack = new Intent("com.omi.iberolactalpreventa.ListadoPedidos");
	         startActivity(intBack);
	    	break;
	    default:
	    	itmBorrar.setVisible(false);
			itmCancelar.setVisible(false);
			itmModif.setVisible(false);
	    }
	    return true;
	    }
	
	@Override
	@Deprecated
	protected Dialog onCreateDialog(int id) {
		  return new DatePickerDialog(this, datepickerListenner, fechaPedido.get(Calendar.YEAR),fechaPedido.get(Calendar.MONTH),fechaPedido.get(Calendar.DAY_OF_MONTH));
	}
	
	DatePickerDialog.OnDateSetListener datepickerListenner = new DatePickerDialog.OnDateSetListener() {
		@Override
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			GregorianCalendar cAux = Modulebase.calendar;
			fechaPedido = new GregorianCalendar(year, monthOfYear, dayOfMonth);
			Modulebase.calendar = fechaPedido;
			lstNewPedFecha.setAdapter(Modulebase.inicializarFecha());
			Modulebase.calendar = cAux;
		}
	};

	@Override
	public void onBackPressed() {
		finish();
	}
	
	protected void onResume() {
		super.onResume();


		//Al volver de la pantalla, recogemos los datos temporales:
		if(Modulebase.prodTemp!=null)
		{

			txtNewDescripcion.setText(Modulebase.prodTemp.getDescripcion());
			
				//Calculos de precios, etc:
				gestUdMed(Modulebase.prodTemp.getCodigo());
				//La cantidad por defecto es 1:
				txtNewCantidad.setText("1");
				
				GestionPrecio gstPrecio = new GestionPrecio();
				txtPrecio = gstPrecio.getPrecio(Modulebase.prodTemp.getCodigo(), Modulebase.idClient, spnNewUM.getSelectedItem().toString());
				chkNewpreckg.setChecked(gstPrecio.getPrecioEnKg(Modulebase.prodTemp.getCodigo(),Modulebase.idClient));
				txtNewKgUd.setText(gstPrecio.getKgPorUd(Modulebase.prodTemp.getCodigo(),Modulebase.idClient));
				Modulebase.txtNewPudkg.setText(gstPrecio.getPrecVtaUdKg(Modulebase.prodTemp.getCodigo(), Modulebase.idClient));
			      
				Modulebase.claseDescuento.GetDto(Modulebase.idClient, Modulebase.prodTemp.getCodigo(), fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+fechaPedido.get(Calendar.YEAR), Modulebase.txtNewPudkg.getText()+"");
				
				Modulebase.txtNewDimp.setText(Modulebase.claseDescuento.Imp_fijo_oferta);
				Modulebase.txtNewDto.setText(Modulebase.claseDescuento.Dto_Promo);
			    Modulebase.TextDtoLinea = Modulebase.claseDescuento.Dto_Final;
			    //TODO: está bien?
			    Modulebase.selectedLine = new ItmPedLst(txtNewPedIdNumPed.getText()+"", "0", Modulebase.prodTemp.getCodigo(), Modulebase.prodTemp.getDescripcion(), txtNewCantidad.getText()+"", Modulebase.txtNewPudkg.getText()+"" , txtNewKgUd+"", txtPrecio);
			    Modulebase.txtNewImporte.setText(GetImporte(true)); 
			    Modulebase.prodTemp=null;
		}
		if(Modulebase.commentTemp!=null)
		{
			txtNewPedComment.setText(Modulebase.commentTemp);
			Modulebase.commentTemp=null;
		}
	};
	
	private void cargarDatos()
	{
		c = Modulebase.db.ejecutarSelect(new String[]{"NOMBRE","NIF_CIF","DIRECCION"}, "CLIENTE", "COD_CLIENTE=?", new String[]{Modulebase.idClient});
		
		if(c!=null && c.moveToFirst())
		{
			txtNewPedNombre.setText(c.getString(0));
			txtNewPedNifCif.setText(c.getString(1));
			txtNewPedDireccion.setText(c.getString(2));
		}
		}
	
	private void generarPedido()
	{
		String num;
        String NomClie="";
		c = Modulebase.db.ejecutarSelect(new String[]{"Nombre"}, "Cliente", "Cod_Cliente=?", new String[]{Modulebase.idClient});
	     
	     if(c!=null && c.moveToFirst() && c.getString(0)!=null)
	     {
	    	 NomClie = c.getString(0);
	     }
	     
	     txtNewPedNombre.setText(NomClie);
		
        c = Modulebase.db.ejecutarSelect(new String[]{"MAX(Contador)"}, "N_Serie_Pedido", "Cod_Vendedor=? AND Cod_Ruta=? AND FECHA=?", new String[]{Modulebase.vendedor,Modulebase.ruta,fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+fechaPedido.get(Calendar.YEAR)});
       
        if(c!=null && c.moveToFirst() && c.getString(0)!=null)
        {
        	num = c.getString(0);
        	 num = (Integer.parseInt(num)+1)+"";
        	 //Actualizar contador:
        	 if(!Modulebase.db.ejecutarNonQuery("UPDATE N_Serie_Pedido SET Contador='" + num + "' WHERE Cod_vendedor='" + Modulebase.vendedor + "' AND Cod_ruta='" + Modulebase.ruta + "' AND Fecha='" + fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+fechaPedido.get(Calendar.YEAR) + "'"))
        	 {
        		 toast = Toast.makeText(this, "Error al actualizar numero de serie del pedido", Toast.LENGTH_SHORT);
        		 toast.show();
        		 return;
        	 }
         }
        else
        {
            num = "1";
          
            //Insertar el nº de registro nuevo
            if(!Modulebase.db.ejecutarNonQuery("INSERT INTO N_Serie_Pedido VALUES ('" + Modulebase.vendedor + "','" + Modulebase.ruta + "','" + fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+fechaPedido.get(Calendar.YEAR)+"','" + num + "','')"))
            {
            	toast = Toast.makeText(this, "Error al crear el nuevo pedido", Toast.LENGTH_SHORT);
            	toast.show();
            	return;
            }

        }

        //Rellenamos con ceros:
        for(int i=1;i<3;i++)
        {
        	if(num.length()<3)
        	{
        		num+="0";
        	}
        }
       
        //Completamos el formato del texto pasandolo al textbox:
        txtNewPedIdNumPed.setText("PR/" +Modulebase.vendedor+ "/" +Modulebase.ruta+"/" + (fechaPedido.get(Calendar.YEAR)+"").substring(2)+fechaPedido.get(Calendar.MONTH)+fechaPedido.get(Calendar.DAY_OF_MONTH) + "/" + num);

        Modulebase.db.ejecutarNonQuery("INSERT INTO Cab_Pedido (N_Pedido, Venta_a_N_clie, Nombre_Cliente, Fecha_reg, Su_Ntra_ref,Vendedor,Ruta,Fecha_entrega,Devolucion) VALUES ('" + txtNewPedIdNumPed.getText() + "', '" + Modulebase.idClient + "', '" + txtNewPedNombre.getText() + "', '" + fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+ fechaPedido.get(Calendar.YEAR) +"', '" + txtNewPedSuRefPed.getText() + "','" + Modulebase.vendedor + "','" + Modulebase.ruta + "','"+ fechaPedido.get(Calendar.DAY_OF_MONTH) + "/"+fechaPedido.get(Calendar.MONTH)+"/"+fechaPedido.get(Calendar.YEAR)+"'," +((chkNewPedCorrecion.isChecked()) ? 1 : 0)+ ")");
	}
	

	private void eliminarLineaPedido()
	{
	        
	    c = Modulebase.db.ejecutarSelect(new String[]{"EXPORTADO"}, "CAB_PEDIDO","N_PEDIDO=?",new String[]{Modulebase.selectedLine.getNumPed()});

        if(c!=null && c.moveToFirst())
        {
        if(c.getString(0).equals("1"))
        {
        	dlgFocus.setTitle("Enviar Pedido");
            dlgFocus.setMessage("El pedido ya fué enviado.");
            return;
        }

            if(Integer.parseInt(Modulebase.selectedLine.getLinea()) < 0)
            {
            return;
            }

            dlgFocus.setTitle("Eliminar Linea");
            dlgFocus.setMessage("¿Desea eliminar la línea seleccionada?");
            
            DialogInterface.OnClickListener dlgintdelete = new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) 
				{
					if(which==-1)
					{
						 Modulebase.db.ejecutarNonQuery("DELETE FROM Lin_Pedido WHERE N_Pedido='" + Modulebase.selectedLine.getNumPed() + "' AND N_Linea='" + Modulebase.selectedLine.getLinea()+"'");
						 cargarPedidosLin();
					}
				}
			}; 
			
	          dlgFocus.setPositiveButton("Si", dlgintdelete);
	          dlgFocus.setNegativeButton("No", dlgintdelete);
	          dlgFocus.show();
        }
           
	}
	
	private void eliminarPedido()
	{
		//Borrar pedido
        
        String Dat="0";
        
        c = Modulebase.db.ejecutarSelect(new String[]{"Exportado"}, "Cab_Pedido", "N_PEDIDO=?", new String[]{txtNewPedIdNumPed.getText()+""});
        
        if(c!=null && c.moveToFirst())
        {
        Dat = c.getString(0);
        }
        
        if(Dat.equals("1"))
        {
            dlgFocus.setTitle("Error");
            dlgFocus.setMessage("El pedido ya fué enviado. No se puede eliminar");
            return;
		}

        txtNewCantidad.setOnEditorActionListener(new TextView.OnEditorActionListener()
        {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            	if (actionId == EditorInfo.IME_ACTION_DONE)
            	txtNewImp.setText(GetImporte(true));
            	return true;
            }
        });
        
        
        DialogInterface.OnClickListener dlginDeletePed = new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				switch(which)
				{
				case -1:
	
			            Modulebase.db.ejecutarNonQuery("DELETE FROM Cab_Pedido WHERE N_pedido='" + txtNewPedIdNumPed.getText() + "'");
			            Modulebase.db.ejecutarNonQuery("DELETE FROM Lin_Pedido WHERE N_pedido='" +txtNewPedIdNumPed.getText() + "'");
			            Modulebase.db.ejecutarNonQuery("DELETE FROM Comentario WHERE Referencia='"+ txtNewPedIdNumPed.getText()+ "'");
			            toast = Toast.makeText(getApplicationContext(), "Pedido Eliminado", Toast.LENGTH_SHORT);
			            toast.show();
			            Intent intBack = new Intent("com.omi.iberolactalpreventa.ListadoPedidos");
			            startActivity(intBack);
				break;
				}
			}
		};
		
		dlgFocus.setTitle("Eliminar");
		dlgFocus.setMessage("¿Esta seguro de querer eliminar este pedido?");
		dlgFocus.setPositiveButton("Aceptar", dlginDeletePed);
		dlgFocus.setNegativeButton("Cancelar", dlginDeletePed);
		dlgFocus.show();

   }
	
	private void actualizarGrid()
	{
	
	        //Actualizar los datos de la cabecera
	        c = Modulebase.db.ejecutarSelect(new String[]{"Cod_Producto","Descripcion","Cantidad","Precio","Precio_En_KG","KG_Unidad","Precio_Vta_UdKg","Precio_neto_UdKg","Imp_fijo_dto_oferta","Porc_dto_promo","Dto_final","Dto_linea","Porc_dto_oferta","Porc_dto_promo","Imp_fijo_dto_oferta","Imp_fijo_dto_promo","Dto_Precio_neto_udkg"}, "Lin_Pedido", "N_PEDIDO=? AND N_Linea=?", new String[]{Modulebase.selectedLine.getNumPed(),Modulebase.selectedLine.getLinea()});

	        if(c!=null && c.moveToFirst())
	        {
	        	
	        txtNewDescripcion.setText(c.getString(1));
	    
	        txtNewCantidad.setText(c.getString(2));
	        txtPrecio = c.getString(3);
	    	
	        if(c.getString(4).equals("1"))
	        {
	        	chkNewpreckg.setChecked(true);
	        }
	        else
	        {
	        	chkNewpreckg.setChecked(false);
	        }
	    
	        	txtNewKgUd.setText(c.getString(5));
	        	
	        	Modulebase.txtNewPudkg.setText(c.getString(6));
	        	
	        	TextPrecNetoUd = c.getString(7);
	        		        	
	        	Modulebase.txtNewDimp.setText(c.getString(8));
	        	
	        	Modulebase.txtNewDto.setText(c.getString(9));
	        	
	        	Modulebase.TextDtoLinea = c.getString(10);
  	
	        	Modulebase.claseDescuento.Dto_linea = c.getString(11);
	        	Modulebase.claseDescuento.Dto_oferta = c.getString(12);
	        	Modulebase.claseDescuento.Dto_Promo = c.getString(13);
	        	Modulebase.claseDescuento.Imp_fijo_oferta = c.getString(14);
	        	Modulebase.claseDescuento.Imp_fijo_Promo = c.getString(15);
	        	Modulebase.claseDescuento.precio_neto = c.getString(16);
	        	Modulebase.claseDescuento.Dto_Final = c.getString(10);
	            gestUdMed(c.getString(0));
	      
	             GestionDescuentos ClaseDtoAux = new GestionDescuentos();
	                    
	             ClaseDtoAux.GetDto(Modulebase.idClient, c.getString(0), fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+fechaPedido.get(Calendar.YEAR), Modulebase.txtNewPudkg.getText()+"");
	             Modulebase.claseDescuento.Fecha_inicial = ClaseDtoAux.Fecha_inicial;
	             Modulebase.claseDescuento.Fecha_final = ClaseDtoAux.Fecha_final;
	         
	             ActualizarPrecImp(c.getString(0));
	       
	        }
	}

	private void gestUdMed(String codProd)
	{
		c = Modulebase.db.ejecutarSelect(new String[]{"Codigo"}, "Ud_medida",  "N_Producto=?", new String[]{codProd});

		if(c!=null && c.moveToFirst())
		{
			String[] udMeds = new String[c.getCount()];
			int i=0;
			do
			{
				udMeds[i]= c.getString(0);
				i++;
			}while(c.moveToNext());
		
			ArrayAdapter<String> adptr = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, udMeds);
			
			spnNewUM.setAdapter(adptr);

			//Seleccionamos el elemento por defecto:
			c = Modulebase.db.ejecutarSelect(new String[]{"Ud_medida_venta"}, "Producto","Numero=?",new String[]{codProd});
			
			if(c!=null && c.moveToFirst())
			{
				for(int j=0;j<spnNewUM.getCount();j++)
				{
					if(spnNewUM.getItemAtPosition(j).toString().equals(c.getString(0)))
					{
							spnNewUM.setSelection(j);
							break;
					}
				}
			}
		}
	}
	
	private void ActualizarPrecImp(String codProd)
	{
		GestionPrecio vlGest = new GestionPrecio();
		String vLCantUdMedida ="0";

		Modulebase.claseDescuento.CalcDtoFinal(Modulebase.idClient, codProd, Modulebase.txtNewPudkg.getText()+"");
   
    Modulebase.TextDtoLinea = Modulebase.claseDescuento.Dto_Final;

    c = Modulebase.db.ejecutarSelect(new String[]{"Cantidad_por_um"}, "Ud_medida","N_Producto=? AND Codigo=?",new String[]{codProd,spnNewUM.getSelectedItem().toString()});
    
    if(c!=null && c.moveToFirst())
    {
    	vLCantUdMedida = c.getString(0);
    }

    CalcPrecioNeto();

    if(chkNewpreckg.isChecked())
    {
            if(!txtNewKgUd.getText().equals("0") || !Modulebase.txtNewPudkg.getText().equals("0"))
            {
                txtPrecio = Float.parseFloat(txtNewKgUd.getText()+"") * Float.parseFloat(Modulebase.txtNewPudkg.getText()+"") * Float.parseFloat(vLCantUdMedida)+"";
            }
            else
            {
               txtPrecio = Float.parseFloat(vlGest.getPrecVtaUdKg(codProd, Modulebase.idClient)) * Float.parseFloat(vlGest.getKgPorUd(codProd, Modulebase.idClient)) * Float.parseFloat(vLCantUdMedida)+"";
            }
    }
    else
    {
            txtPrecio = Float.parseFloat(txtNewKgUd.getText()+"") * Float.parseFloat(vLCantUdMedida)+"";
    }

    txtPrecio = Modulebase.Redondear(txtPrecio, 5);

    txtNewImp.setText(GetImporte(true));
 
    }
	
	private void CalcPrecioNeto()
	{
    float vLPrecNeto=0;
    String vLPrecUdKgStr="0";
    String vLDtoStr="0";

    vLPrecUdKgStr = Modulebase.txtNewPudkg.getText()+"";
    vLDtoStr = Modulebase.TextDtoLinea;
    vLPrecNeto = Float.parseFloat(vLPrecUdKgStr) - ((Float.parseFloat(vLPrecUdKgStr) * Float.parseFloat(vLDtoStr)) / 100);
    
    vLPrecNeto = auxFloatParser(Modulebase.Redondear(vLPrecNeto+"", 3));
//    vLPrecNeto = Float.parseFloat(Modulebase.Redondear(vLPrecNeto+"", 3));
    TextPrecNetoUd = vLPrecNeto+"";
	}
	
	private float auxFloatParser(String number)
	{
        try{
        Float parsed = Float.parseFloat(number);
        return parsed;
        }
        catch (Exception e)
        {
        	try{
        	NumberFormat formatter = NumberFormat.getInstance(new Locale("ES", "ES"));
        	return formatter.parse(number).floatValue();
			} catch (ParseException e1) {
				e1.printStackTrace();
				return 0;
			}
        }
	}
	
	private String GetImporte(boolean pIncluyeDtoFact)
	{
//		Se parsea string a float, con varios tipos de locales según la BD, se calcula el redondeo (donde se parsea de float a string
//		en el paso de argumentos para reparsear de string a float), devuelve un nuevo parseo a string
    String vlImporte = "0";
    String vlImporteDtoFact;
    
    
    //TODO: AQUÍ CAMBIAR
    vlImporte = Modulebase.Redondear(auxFloatParser(txtPrecio) * auxFloatParser(txtNewCantidad.getText()+"")+"" , 2);
    
//    vlImporte = Modulebase.Redondear(Float.parseFloat(txtPrecio) * Float.parseFloat(txtNewCantidad.getText()+"")+"", 2);

    if(!pIncluyeDtoFact)
    {
        return vlImporte;
    }
    else
    {
        vlImporteDtoFact = GetImpDtoFactura(vlImporte);
        
        String impTemp = Modulebase.Redondear((auxFloatParser(vlImporte) - auxFloatParser(vlImporteDtoFact)) +"" , 2); 
        return impTemp;
    }
    
	}
	
	private String GetImpDtoFactura(String Importe)
	{

    String vlDtoFact="0";

    boolean vlEsCadena=false;

 

    c = Modulebase.db.ejecutarSelect(new String[]{"Dto_FACTURA"}, "CLIENTE", "COD_CLIENTE=?", new String[]{Modulebase.idClient});
    
    if(c!=null && c.moveToFirst() && !c.getString(0).equals("") && !c.getString(0).equals(""))
    {
  
    for(int i=0;i<c.getString(0).length();i++)
    {
    	 if(!vlEsCadena)
    	 {
    	            if(c.getString(0).substring(i, i+1).equals("+") || c.getString(0).substring(i, i+1).equals("-"))
    	            {
    	                vlEsCadena = true;
    	            }
    	 }
    }
    
    
    if(vlEsCadena)
    {
        vlDtoFact = Modulebase.claseDescuento.CalcDtoCascada(c.getString(0));
	}
       else
    {
        vlDtoFact = c.getString(0);
	}
    }
   
    return Modulebase.Redondear(((Float.parseFloat(Importe.replace(",",".")) * Float.parseFloat(vlDtoFact.replace(",", "."))) / 100)+"", 2);

	}
	
	 private String GetImporteDto()
	 {
     float vLDto;
     String vLDtoStr="0";

     vLDtoStr = Modulebase.TextDtoLinea;

     vLDto = Float.parseFloat(vLDtoStr);

     return Modulebase.Redondear((auxFloatParser(Modulebase.Redondear(auxFloatParser(txtPrecio) * auxFloatParser(txtNewCantidad.getText()+"")+"" , 2)) * vLDto /100)+"",2);
//     return Modulebase.Redondear((Float.parseFloat(Modulebase.Redondear(Float.parseFloat(txtPrecio) * Float.parseFloat(txtNewCantidad.getText()+"")+"", 2)) * vLDto / 100)+"", 2);
}
 
	private void cargarPedidosLin()
	{
		lstNewPedLinProd.setAdapter(null);

		//Cargamos las lineas asociadas al pedido:
		c = Modulebase.db.ejecutarSelect(new String[]{"N_PEDIDO","N_LINEA","COD_PRODUCTO","DESCRIPCION","CANTIDAD","CANT_UD_MEDIDA","UD_MEDIDA","Importe_linea"}, "LIN_PEDIDO", "N_PEDIDO=?", new String[]{txtNewPedIdNumPed.getText()+""});
		
		if(c!=null && c.moveToFirst())
		{
			ArrayList<ItmPedLst> items = new ArrayList<ItmPedLst>();
			do
			{
			ItmPedLst itm = new ItmPedLst(c.getString(0), c.getString(1), c.getString(2),c.getString(3),c.getString(4),c.getString(5),c.getString(6),c.getString(7));
			items.add(itm);
			}while(c.moveToNext());
			
			AdapterItmPedlst adptr = new AdapterItmPedlst(this, items);
			lstNewPedLinProd.setAdapter(adptr);
			Modulebase.selectedLine = items.get(0);
			actualizarGrid();
		}
		
		
	}
	
private void addproducto()
{
	
	 String Dat=""; 
	 String NextNumLin="0";
	 String vLCantUdMedida="0";
	 String GrupoIvaNeg="";
	 String GrupoIVAProd="";
	 
	 String vLPrecioEnKg="0";
	 String vlimporte="0";
	 String vlImpDtoFact="0";
	
	 c = Modulebase.db.ejecutarSelect(new String[]{"Exportado"}, "Cab_Pedido", "N_pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});

	 if(c!=null && c.moveToFirst())
	 {
		 Dat = c.getString(0);
	 }
	 dlgFocus.setPositiveButton("Aceptar", dlgclick);
     if(Dat.equals("1"))
     {
    	 dlgFocus.setTitle("Error");
    	 dlgFocus.setMessage("El pedido ya fué enviado.");
    	 dlgFocus.show();
         return;
     }
	 

     //Agregar chequeos correspondientes
     if((txtNewPedIdNumPed.getText()+"").equals("") || Modulebase.selectedLine.getCodigo().equals("") || (txtNewCantidad.getText()+"").equals("0") || spnNewUM.getSelectedItem().toString().equals(""))
     {
    	 dlgFocus.setTitle("Error");
    	 dlgFocus.setMessage("Debe rellenar todos los datos");
    	 return;
     }

     c = Modulebase.db.ejecutarSelect(new String[]{"MAX(N_Linea)"}, "Lin_Pedido","N_Pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});

     if(c!=null && c.moveToFirst() && c.getString(0)!=null)
     {
     NextNumLin = c.getString(0);
     }
     
     if(NextNumLin.equals("0") || NextNumLin.equals(""))
     {
         NextNumLin = "1";
     }
     else
     {
         NextNumLin += (Float.parseFloat(NextNumLin)+1)+"";
     }

     ActualizarPrecImp(Modulebase.selectedLine.getCodigo());
  
     c = Modulebase.db.ejecutarSelect(new String[]{"Cantidad_por_um"},"Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
     
     if(c!=null && c.moveToFirst())
     {
     vLCantUdMedida = c.getString(0);
     }

     CalcularIVAyRe(txtNewImp.getText()+"");
 
     c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_registro_IVA_neg"}, "Cliente", "Cod_Cliente=?", new String[]{Modulebase.idClient});
     
     if(c!=null && c.moveToFirst())
     {
    	 GrupoIvaNeg = c.getString(0); 
     }
     
     c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_contable_producto"}, "Producto", "Numero=?", new String[]{Modulebase.selectedLine.getCodigo()});
     
     if(c!=null && c.moveToFirst())
     {
    	 GrupoIVAProd = c.getString(0);
     }
     
     vLPrecioEnKg = "0";
     
     if(chkNewpreckg.isChecked())
     {
    	 vLPrecioEnKg = "1";
     }
     
     vlimporte = Modulebase.Redondear(((auxFloatParser(txtPrecio)*auxFloatParser(txtNewCantidad.getText()+""))) - auxFloatParser(GetImporteDto())+"" ,2);
//     vlimporte = Modulebase.Redondear(((Float.parseFloat(txtPrecio) * Float.parseFloat(txtNewCantidad.getText()+""))) - Float.parseFloat(GetImporteDto())+"", 2);
     vlImpDtoFact = GetImpDtoFactura(vlimporte);

     //Insertar una nueva línea de pedido
     Modulebase.db.ejecutarNonQuery("INSERT INTO Lin_Pedido (N_Pedido,N_Linea,Cod_producto,Ud_medida,Cantidad,Grp_reg_IVA_neg,Grp_reg_IVA_prd,Precio,Importe_linea,Cant_ud_medida,Descripcion,Descripcion2,Fecha_Pedido,Importe_IVA,Importe_RE,Precio_En_KG,KG_Unidad,Precio_Vta_UdKg,Dto_linea,Precio_neto_UdKg,Porc_dto_oferta,Imp_fijo_dto_oferta,Porc_dto_promo,Imp_fijo_dto_promo,Dto_Precio_neto_udkg,Dto_final,Imp_Dto_factura) VALUES ('" + txtNewPedIdNumPed.getText()+ "', " + NextNumLin + ", '" + Modulebase.selectedLine.getCodigo() + "', '" + spnNewUM.getSelectedItem().toString() + "', " + txtNewCantidad.getText() + ", '" + GrupoIvaNeg + "', '" + GrupoIVAProd + "', " + txtPrecio + ", " + txtNewImp.getText() + ", " + vLCantUdMedida + ", '" + txtNewDescripcion.getText() + "', ' ', '" + fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+ fechaPedido.get(Calendar.MONTH)+"/" + fechaPedido.get(Calendar.YEAR) +"', " + Importe_IVA + ", " + Importe_RE+ ", " + vLPrecioEnKg + ", " + txtNewKgUd.getText() + ", " + Modulebase.txtNewPudkg.getText() + ", " + Modulebase.claseDescuento.Dto_linea + ", " + TextPrecNetoUd  + ", " + Modulebase.claseDescuento.Dto_oferta + ", " + Modulebase.claseDescuento.Imp_fijo_oferta + ", " + Modulebase.claseDescuento.Dto_Promo + ", " + Modulebase.claseDescuento.Imp_fijo_Promo + ", " + Modulebase.claseDescuento.precio_neto + ", " + Modulebase.TextDtoLinea + ", " + vlImpDtoFact + ")");
  
     //Recargamos la lista:
     cargarPedidosLin();

     //Limpiamos los campos:
     limpiarDatosLin();

}

public void CalcularIVAyRe(String pImpLinea)
{
//Calcular IVA y RE
String Pct_IVA="0";
String Pct_RE="0";

String IVA_neg="0";
String IVA_prd="0";

c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_registro_IVA_neg"}, "Cliente", "Cod_Cliente=?", new String[]{Modulebase.idClient});

if(c!=null && c.moveToFirst())
{
IVA_neg = c.getString(0);
}

c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_contable_producto"}, "Producto", "Numero=?", new String[]{Modulebase.selectedLine.getCodigo()});

if(c!=null && c.moveToFirst())
{
IVA_prd = c.getString(0);
}

c = Modulebase.db.ejecutarSelect(new String[]{"Pct_IVA"}, "Config_grupo_registro_IVA", "IVA_neg=? AND IVA_prd=?", new String[]{IVA_neg,IVA_prd});

if(c!=null && c.moveToFirst())
{
Pct_IVA = c.getString(0);
}

c = Modulebase.db.ejecutarSelect(new String[]{"Pct_RE"}, "Config_grupo_registro_IVA", "IVA_neg=? AND IVA_prd=?", new String[]{IVA_neg,IVA_prd});

if(c!=null && c.moveToFirst())
{
Pct_RE = c.getString(0);
}

Importe_RE = "0";
Importe_IVA = "0";

if(!Pct_IVA.equals(""))
{
	Importe_IVA = auxFloatParser(pImpLinea) * (auxFloatParser(Pct_IVA) / 100)+"";
//	Importe_IVA = Float.parseFloat(pImpLinea) * (Float.parseFloat(Pct_IVA) / 100)+"";
}
		
if(!Pct_RE.equals(""))
{
	Importe_RE = auxFloatParser(pImpLinea) * (auxFloatParser(Pct_RE) / 100)+"";
//	Importe_RE = Float.parseFloat(pImpLinea) * (Float.parseFloat(Pct_RE) / 100)+"";
}

}

private void modifyProd()
{

	  //Modifica la línea seleccionada
    String Dat="0";
    String NumLin="0";
    String Importe_IVA="0";
    String Importe_RE="0";
    String vLCantUdMedida="0";
    String GrupoIvaNeg="0";
    String GrupoIVAProd="0";
    String vLPrecioEnKg="0";
    String vlimporte="0";
    String vlImpDtoFact = "0";
    
    c = Modulebase.db.ejecutarSelect(new String[]{"Exportado"}, "Cab_Pedido", "N_pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});
	
    if(c!=null && c.moveToFirst())
    {
    Dat = c.getString(0);
    }
    
    dlgFocus.setPositiveButton("Aceptar", dlgclick);
    
    if(Dat.equals("1"))
    {
    	dlgFocus.setTitle("Error");
    	dlgFocus.setMessage("El pedido ya se ha enviado");
        return;
    }
 
    NumLin = Modulebase.selectedLine.getLinea();

        ActualizarPrecImp(Modulebase.selectedLine.getCodigo());
        
        c = Modulebase.db.ejecutarSelect(new String[]{"Cantidad_por_um"}, "Ud_medida", "N_Producto=? AND Codigo=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});
        
        if(c!=null && c.moveToFirst())
        {
        	vLCantUdMedida = c.getString(0);
        }
        
        CalcularIVAyRe(txtNewImp.getText()+"");
        
        c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_registro_IVA_neg"}, "Cliente", "Cod_Cliente=?", new String[]{Modulebase.idClient});
        
        if(c!=null && c.moveToFirst())
        {
        	GrupoIvaNeg = c.getString(0);
        }

        c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_contable_producto"}, "Producto", "Numero=?", new String[]{Modulebase.selectedLine.getCodigo()});
        
        if(c!=null && c.moveToFirst())
        {
        	GrupoIVAProd=c.getString(0);
        }
       
       if(chkNewpreckg.isChecked())
       {
            vLPrecioEnKg = "1";
       }
       else
       {
            vLPrecioEnKg = "0";
       }
       
        vlimporte = Modulebase.Redondear(Float.parseFloat(txtPrecio) * Float.parseFloat(txtNewCantidad.getText()+"")- Float.parseFloat(GetImporteDto())+"",2);
        
        vlImpDtoFact = GetImpDtoFactura(vlimporte);
       

        //Modificamos una nueva línea de pedido
        Modulebase.db.ejecutarNonQuery("UPDATE Lin_Pedido SET N_Pedido='" + txtNewPedIdNumPed.getText() + "', N_Linea='" + NumLin + "', Cod_producto='" + Modulebase.selectedLine.getCodigo() + "', Ud_medida='" + spnNewUM.getSelectedItem().toString() + "', Cantidad='" + txtNewCantidad.getText() +"', Grp_reg_IVA_neg='" + GrupoIvaNeg + "', Grp_reg_IVA_prd='" + GrupoIVAProd + "', Precio='" + txtPrecio +"', Importe_linea='" + txtNewImp.getText() +"', Cant_ud_medida='" +vLCantUdMedida +"', Descripcion='" + Modulebase.selectedLine.getDescripcion() + "', Descripcion2=' ', Fecha_Pedido='"+ fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+fechaPedido.get(Calendar.YEAR) + "', Importe_IVA='" + Importe_IVA +"', Importe_RE='" + Importe_RE +"', Precio_En_KG='" + vLPrecioEnKg +"', KG_Unidad='"+ txtNewKgUd.getText() +"', Precio_Vta_UdKg='" +Modulebase.txtNewPudkg.getText() +"', Dto_linea='" + Modulebase.claseDescuento.Dto_linea +"', Precio_neto_UdKg='" + TextPrecNetoUd +"', Porc_dto_oferta='" + Modulebase.claseDescuento.Dto_oferta +"', Imp_fijo_dto_oferta='" + Modulebase.claseDescuento.Imp_fijo_oferta +"', Porc_dto_promo='" + Modulebase.claseDescuento.Dto_Promo + "', Imp_fijo_dto_promo='" + Modulebase.claseDescuento.Imp_fijo_Promo +"', Dto_Precio_neto_udkg='" + Modulebase.claseDescuento.precio_neto +"', Dto_final='" + Modulebase.TextDtoLinea +"', Imp_Dto_factura='" + vlImpDtoFact +"' WHERE N_Pedido='" + txtNewPedIdNumPed.getText() + "' AND N_Linea='" + NumLin+"'");
        cargarPedidosLin();
        //Actualizamos las líneas
        actualizarGrid();
}

private void introducirConsumo()
{
	String Dat="0";
	String NextNumLin="0";
	String Importe_IVA="0";
	String Importe_RE="0";
	String vLCantUdMedida="0";
	String GrupoIvaNeg="0";
	String GrupoIVAProd="0";
	String vLPrecioEnKg="0";
	String vlimporte="0";
	String vlImpDtoFact="0";

	
	c = Modulebase.db.ejecutarSelect(new String[]{"Exportado"},"Cab_Pedido", "N_Pedido=?",new String[]{txtNewPedIdNumPed.getText()+""});
	dlgFocus.setPositiveButton("Aceptar", dlgclick);
	dlgFocus.setTitle("Error");
	
	if(c!=null && c.moveToFirst())
	{
		Dat = c.getString(0);
		
		if(Dat.equals("1"))
		{
			
			dlgFocus.setMessage("El pedido ya fué enviado.");
			dlgFocus.show();
			return;
		}
	}
	
	txtNewCantidad.setText(txtNewCantConsumos.getText()+"");

//Agregar chequeos correspondientes
	if(txtNewPedIdNumPed.getText().equals("") || Modulebase.selectedLine.getCodigo().equals("") || txtNewCantidad.getText().equals("0") || spnNewUM.getSelectedItem().toString().equals(""))
	{
    dlgFocus.setMessage("Debe rellenar todos los datos");
    dlgFocus.show();
    return;
	}

	Modulebase.db.ejecutarSelect(new String[]{"MAX(N_Linea)"}, "Lin_Pedido", "N_Pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});
	
	if(c!=null && c.moveToFirst())
	{
		NextNumLin = c.getString(0);
	}

if(NextNumLin.equals(""))
{
    NextNumLin = "1";
}
else
{
    NextNumLin = (Float.parseFloat(NextNumLin)+1)+"";
}


ActualizarPrecImp(Modulebase.selectedLine.getCodigo());

c = Modulebase.db.ejecutarSelect(new String[]{"Cantidad_por_um"}, "Ud_Medida", "N_Producto=? AND CODIGO=?", new String[]{Modulebase.selectedLine.getCodigo(),spnNewUM.getSelectedItem().toString()});

if(c!=null && c.moveToFirst())
{
	vLCantUdMedida = c.getString(0);
}

CalcularIVAyRe(txtNewImp.getText()+"");

c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_registro_IVA_neg"}, "Cliente", "Cod_Cliente=?", new String[]{Modulebase.idClient});

if(c!=null && c.moveToFirst())
{
	GrupoIvaNeg = c.getString(0);
}

c = Modulebase.db.ejecutarSelect(new String[]{"Grupo_contable_producto"}, "Producto", "Numero=?", new String[]{Modulebase.selectedLine.getCodigo()});

if(c!=null && c.moveToFirst())
{
	GrupoIVAProd = c.getString(0);
}

if(chkNewpreckg.isChecked())
{
    vLPrecioEnKg = "1";
}
else
{
    vLPrecioEnKg = "0";
}

vlimporte = Modulebase.Redondear((Float.parseFloat(txtPrecio) * Float.parseFloat(txtNewCantidad.getText()+"")) - Float.parseFloat(GetImporteDto())+"", 2);
vlImpDtoFact = GetImpDtoFactura(vlimporte);

//Insertar una nueva línea de pedido
if(!Modulebase.db.ejecutarNonQuery("INSERT INTO Lin_Pedido (N_Pedido,N_Linea,Cod_producto,Ud_medida,Cantidad,Grp_reg_IVA_neg,Grp_reg_IVA_prd,Precio,Importe_linea,Cant_ud_medida,Descripcion,Descripcion2,Fecha_Pedido,Importe_IVA,Importe_RE,Precio_En_KG,KG_Unidad,Precio_Vta_UdKg,Dto_linea,Precio_neto_UdKg,Porc_dto_oferta,Imp_fijo_dto_oferta,Porc_dto_promo,Imp_fijo_dto_promo,Dto_Precio_neto_udkg,Dto_final,Imp_Dto_factura) VALUES ('" + txtNewPedIdNumPed.getText() + "','" + NextNumLin + "', '" + Modulebase.selectedLine.getCodigo() + "','" + spnNewUM.getSelectedItem().toString() + "', '" + txtNewCantidad.getText() + "', '" + GrupoIvaNeg + "', '" + GrupoIVAProd + "','" + txtPrecio + "','" + txtNewImp.getText() + "', '" + vLCantUdMedida + "', '" + txtNewDescripcion + "', ' ', '" + fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH) +"/"+fechaPedido.get(Calendar.YEAR) +"', '" + Importe_IVA + "','"+ Importe_RE +"','"+ vLPrecioEnKg + "','" + txtNewKgUd.getText() + "','" + Modulebase.txtNewPudkg.getText() + "','" + Modulebase.claseDescuento.Dto_linea + "','" + TextPrecNetoUd +"','"+ Modulebase.claseDescuento.Dto_oferta + "','" + Modulebase.claseDescuento.Imp_fijo_oferta+  "','" + Modulebase.claseDescuento.Dto_Promo + "','" + Modulebase.claseDescuento.Imp_fijo_Promo + "','" + Modulebase.claseDescuento.precio_neto + "','" + Modulebase.TextDtoLinea +"','" + vlImpDtoFact + "')"))
{
	dlgFocus.setMessage("Linea no insertada, el producto ya existe");
	dlgFocus.show();
	return;
}

//Nos posicionamos en la linea insertada
dlgFocus.setTitle("Consumos");
dlgFocus.setMessage("Producto agregado al pedido");
dlgFocus.show();

inicializarConsumos();
}

private void inicializarConsumos()
{
/*	lstNewConsumos.setAdapter(null);

		//Cargamos las lineas asociadas al pedido:
		c = Modulebase.db.ejecutarRawQuery("SELECT con.COD_PRODUCTO, prod.Descripcion,con.COD_UM FROM Consumos con INNER JOIN Producto prod ON con.Cod_producto = prod.Numero WHERE con.Cod_clie=?",new String[]{Modulebase.idClient});

		if(c!=null && c.moveToFirst())
		{
			ArrayList<ItmConsumo> items = new ArrayList<ItmConsumo>();
			do
			{

			ItmConsumo itm = new ItmConsumo(c.getString(0), c.getString(1), c.getString(2));
			items.add(itm);
			}while(c.moveToNext());
			
			AdapterConsumos adptr = new AdapterConsumos(this, items);
			lstNewConsumos.setAdapter(adptr);
		}
	*/
}

private void introducirComentario()
{
	String NextNum="";
	//Añadir un comentario
	if(txtNewPedComment.getText().length()>80)
	{
		dlgFocus.setTitle("Error");
		dlgFocus.setMessage("El texto introducido es demasiado largo");
		dlgFocus.show();
		return;
	}
    
	c = Modulebase.db.ejecutarSelect(new String[]{"MAX(Num_lin)"}, "Comentario", "Tipo=? AND REFERENCIA=?", new String[]{"Pedido",txtNewPedIdNumPed.getText()+""});
	
	if(c!=null && c.moveToFirst() && c.getString(0)!=null)
	{
		NextNum = c.getString(0);
	}
	
    if(NextNum.equals(""))
    {
        NextNum = "10000";
    }
    else
    {
        NextNum = (Float.parseFloat(NextNum)+10000)+"";
    }

    //Insertamos:
    Modulebase.db.ejecutarNonQuery("INSERT INTO Comentario (Tipo,Fecha,Num_lin,Referencia,Comentario) VALUES ('Pedido','"+ fechaPedido.get(Calendar.DAY_OF_MONTH)+"/"+fechaPedido.get(Calendar.MONTH)+"/"+ fechaPedido.get(Calendar.YEAR) +"','" + NextNum + "','" + txtNewPedIdNumPed.getText() + "','" + txtNewPedComment.getText() + "')");
    cargarComentarios();
}

private void cargarComentarios()
{
	lstNewPedComments.setAdapter(null);

	//Cargamos las lineas asociadas al pedido:
	c = Modulebase.db.ejecutarSelect(new String[]{"COMENTARIO","NUM_LIN"}, "COMENTARIO", "Tipo=? AND REFERENCIA=?", new String[]{"Pedido",txtNewPedIdNumPed.getText()+""});
	if(c!=null && c.moveToFirst())
	{
		ArrayList<ItmCommentPredef> items = new ArrayList<ItmCommentPredef>();
		do
		{

		ItmCommentPredef itm = new ItmCommentPredef(c.getString(1),c.getString(0));
		items.add(itm);
		}while(c.moveToNext());
		
		AdapterCommentPredef adptr = new AdapterCommentPredef(this, items);
		lstNewPedComments.setAdapter(adptr);
	}
}

private void eliminarComment()
{
	dlgFocus.setTitle("Eliminar Comentario");
    dlgFocus.setMessage("¿Desea eliminar el comentario seleccionado?");
    
    DialogInterface.OnClickListener dlgintdelete = new DialogInterface.OnClickListener() {
		
		@Override
		public void onClick(DialogInterface dialog, int which) 
		{
			if(which==-1)
			{
				Modulebase.db.ejecutarNonQuery("DELETE FROM Comentario WHERE Tipo='Pedido' AND Num_lin='" + numLinTemp + "' AND Referencia='" + txtNewPedIdNumPed.getText() + "'");
				cargarComentarios();
			}
		}
	}; 
	
      dlgFocus.setPositiveButton("Si", dlgintdelete);
      dlgFocus.setNegativeButton("No", dlgintdelete);
      dlgFocus.show();
      
}

private void editarComment()
{

    if(txtNewPedComment.getText().length()>80)
 	{
 		dlgFocus.setTitle("Error");
 		dlgFocus.setMessage("El texto introducido es demasiado largo");
 		dlgFocus.show();
 		return;
 	}

     Modulebase.db.ejecutarNonQuery("UPDATE Comentario SET Comentario='" + txtNewPedComment.getText() + "' WHERE Tipo='Pedido' AND Num_lin=" + numLinTemp + " AND Referencia='" + txtNewPedIdNumPed.getText() + "'");
     
     cargarComentarios();
}

private void lanzarResumen()
{
	String Importe="0";
	String IVA="0";
	String RE="0";

	c = Modulebase.db.ejecutarSelect(new String[]{"SUM(Importe_linea)"}, "Lin_Pedido", "N_pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});
    
	if(c!=null && c.moveToFirst() && c.getString(0)!=null)
	{
		Importe = c.getString(0);
	}
	
	c = Modulebase.db.ejecutarSelect(new String[]{"SUM(Importe_IVA)"}, "Lin_Pedido", "N_pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});
	
	if(c!=null && c.moveToFirst() && c.getString(0)!=null)
	{
	IVA = c.getString(0);
	}          
         
	c = Modulebase.db.ejecutarSelect(new String[]{"SUM(Importe_RE)"}, "Lin_Pedido", "N_pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});
	
	if(c!=null && c.moveToFirst() && c.getString(0)!=null)
	{
		RE = c.getString(0);
	}

	txtNewPedNombreCliResum.setText(txtNewPedNombre.getText()+"");
//	TODO: NO TE SALTES ESTOS
	txtNewPedImporteResum.setText(Importe);
	txtNewPedImporteIvaResum.setText(IVA);
	txtNewImporteRe.setText(RE);

    Importe = (Float.parseFloat(Importe) + Float.parseFloat(IVA) + Float.parseFloat(RE))+"";
    txtNewPedTotal.setText(Importe);
    
    //Rellenar la lista con los campos:
    lstNewDetResum.setAdapter(null);

    c = Modulebase.db.ejecutarSelect(new String[]{"Descripcion", "Cantidad", "Precio", "Importe_linea"}, "Lin_Pedido", "N_pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});
    
    if(c!=null && c.moveToFirst() && c.getString(0)!=null)
    {
    	ArrayList<itmResumen> items = new ArrayList<itmResumen>();
    	do
    	{
    		itmResumen item = new itmResumen(c.getString(0),c.getString(1),c.getString(2), c.getString(3));
    		items.add(item);
    	}while(c.moveToNext());
    	
    	AdapterResumen adptr = new AdapterResumen(this,items);
    	lstNewDetResum.setAdapter(adptr);
    }
    }

private void cargarPedido()
{
	 String CodClie="";
	 String SuRef="";
	 String NomClie="";
     String FechaEntrega="";

     //Intentar cargar las líneas de pedido
     txtNewPedIdNumPed.setText(extras.getString("numPed"));

     c = Modulebase.db.ejecutarSelect(new String[]{"Venta_a_N_Clie","Su_Ntra_ref","Fecha_entrega","Devolucion","N_orden"}, "Cab_Pedido", "N_Pedido=?", new String[]{txtNewPedIdNumPed.getText()+""});

     if(c!=null && c.moveToFirst() && c.getString(0)!=null)
     {
     CodClie = c.getString(0);
     SuRef = c.getString(1);
     FechaEntrega = c.getString(2);
     
     if(c.getString(3).equals("0"))
     {
    	 chkNewPedCorrecion.setChecked(false);
     }
     else
     {
    	 chkNewPedCorrecion.setChecked(true);
     }
     Modulebase.idClient = CodClie;
     }

     c = Modulebase.db.ejecutarSelect(new String[]{"Nombre"}, "Cliente", "Cod_Cliente=?", new String[]{CodClie});
     
     if(c!=null && c.moveToFirst() && c.getString(0)!=null)
     {
    	 NomClie = c.getString(0);
     }
     
     txtNewPedNombre.setText(NomClie);
     txtNewPedSuRefPed.setText(SuRef);
     String[] fechaEnt = FechaEntrega.split("/");

     fechaPedido = new GregorianCalendar(Integer.parseInt(fechaEnt[2]),Integer.parseInt(fechaEnt[1]), Integer.parseInt(fechaEnt[0]));
     
}

private void limpiarDatosLin()
{
	  	 txtNewDescripcion.setText("");
	     txtNewCantidad.setText("0");
	     txtNewKgUd.setText("0");
	     Modulebase.txtNewPudkg.setText("0");
	     Modulebase.txtNewDimp.setText("0");
	     Modulebase.txtNewDto.setText("0");
	     txtNewImp.setText("0");
	     Modulebase.txtNewDto.setText("0");
	     String udMeds[] = new String[]{""};
	     ArrayAdapter<String> adptr = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, udMeds);
			
			spnNewUM.setAdapter(adptr);
		
	     Modulebase.selectedLine=null;
}

}